/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package test.net.sourceforge.pmd.cpd; import junit.framework.TestCase; import net.sourceforge.pmd.cpd.FileReporter; import net.sourceforge.pmd.cpd.ReportException; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; /** * @author Philippe T'Seyen */ public class FileReporterTest extends TestCase { public void testCreation() { try { new FileReporter(null); fail("expected NullPointerException"); } catch (NullPointerException npe) { } } public void testEmptyReport() throws ReportException { File reportFile = new File("report.tmp"); FileReporter fileReporter = new FileReporter(reportFile); fileReporter.report(""); assertTrue(reportFile.exists()); assertEquals(0, reportFile.length()); assertTrue(reportFile.delete()); } public void testReport() throws ReportException, IOException { String testString = "first line\nsecond line"; File reportFile = new File("report.tmp"); FileReporter fileReporter = new FileReporter(reportFile); fileReporter.report(testString); assertEquals(testString, readFile(reportFile)); assertTrue(reportFile.delete()); } public void testInvalidFile() { File reportFile = new File("/invalid_folder/report.tmp"); FileReporter fileReporter = new FileReporter(reportFile); try { fileReporter.report(""); fail("expected ReportException"); } catch (ReportException re) { } } private String readFile(File file) throws IOException { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); StringBuffer buffer = new StringBuffer(); String line = reader.readLine(); while (line != null) { buffer.append(line); line = reader.readLine(); if (line != null) { buffer.append("\n"); } } return buffer.toString(); } finally { if (reader != null) reader.close(); } } }